<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        // let s1 = Symbol("1");
        // let s2 = Symbol("2");
        // let s3 = Symbol("3");

        // let obj = {
        //     a:12,
        //     b:5,
        //     [s1]:"aaa",
        //     [s2]:"bbb",
        //     [s3]:"ccc",
        // }

        // for in 不会去遍历 Symbol的属性
        // for(let item in obj){
        //     // 执行2次
        //     console.log(item); //a,b
        // }


        // 如果我想遍历到Symbol 属性 我就需要用到Object.getOwnPropertySymbols
        // 返回的是一个含有symbol属性的数组列表。

        // let s1 = Symbol("1");
        // let s2 = Symbol("2");
        // let s3 = Symbol("3");

        // let obj = {
        //     a:12,
        //     b:5,
        //     [s1]:"aaa",
        //     [s2]:"bbb",
        //     [s3]:"ccc",
        // }

        // console.log(Object.getOwnPropertySymbols(obj)); //[Symbol(1), Symbol(2), Symbol(3)]


        // for(let item of Object.getOwnPropertySymbols(obj)){
        //     console.log(item); //key

        //     console.log(obj[item]); //value
        // }

        // let obj2 = { 
        //     ...obj, 
        //     ...Object.getOwnPropertySymbols(obj) // key 0
        // }

        // // console.log(obj2);

        // for(let item in obj2){
        //     console.log(obj[obj2[0]]);
        // }


        // 可迭代对象
        // //Symbol.iterator 说明可以使用 for of来遍历
        let arr = [1,2,3]; //Symbol.iterator  //ƒ values()

        console.log(arr);

    </script>
</body>
</html>